package off_trial

import (
	// "bp/cache"
	sqlc "bp/db/sqlc"
	// "bp/internal/util"
	"context"
)

// // RefreshOffTrialsByOutTransNoAndTrialSceneParam 根据外部交易号+试算场景批量刷新优惠试算参数
// type RefreshOffTrialsByOutTransNoAndTrialSceneParam struct {
// 	OutTransNo               string
// 	TrialScene               string
// 	UpsertOffTrialParamsPtrs []*sqlc.UpsertOffTrialParams
// }

// // RefreshOffTrialsByOutTransNoAndTrialScene 根据外部交易号+试算场景批量刷新优惠试算
// func (s *OffTrialEntityServiceImp) RefreshOffTrialsByOutTransNoAndTrialScene(ctx context.Context, q *sqlc.Queries, ptr *RefreshOffTrialsByOutTransNoAndTrialSceneParam) (offTrialPtrs []*sqlc.OffTrial, err error) {
// 	// slog := util.NewContextLogger(ctx, s.slog)
// 	err = q.DisableOffTrialsByOutTransNoAndTrialScene(ctx, sqlc.DisableOffTrialsByOutTransNoAndTrialSceneParams{
// 		OutTransNo: ptr.OutTransNo,
// 		TrialScene: ptr.TrialScene,
// 	})
// 	if err != nil {
// 		return
// 	}
// 	for _, UpsertOffTrialParamsPtr := range ptr.UpsertOffTrialParamsPtrs {
// 		offTrial, upErr := q.UpsertOffTrial(ctx, *UpsertOffTrialParamsPtr)
// 		if upErr != nil {
// 			err = upErr
// 			return
// 		}
// 		offTrialPtrs = append(offTrialPtrs, &offTrial)
// 	}
// 	return
// }

// DisableOffTrialsByOutTransNoAndTrialSceneParam 根据外部交易号+试算场景作废优惠试算参数
type DisableOffTrialsByOutTransNoAndTrialSceneParam struct {
	OutTransNo string
	TrialScene string
}

// DisableOffTrialsByOutTransNoAndTrialScene 根据外部交易号+试算场景作废优惠试算
func (s *OffTrialEntityServiceImp) DisableOffTrialsByOutTransNoAndTrialScene(ctx context.Context, q *sqlc.Queries, ptr *DisableOffTrialsByOutTransNoAndTrialSceneParam) (err error) {
	// slog := util.NewContextLogger(ctx, s.slog)
	err = q.DisableOffTrialsByOutTransNoAndTrialScene(ctx, sqlc.DisableOffTrialsByOutTransNoAndTrialSceneParams{
		OutTransNo: ptr.OutTransNo,
		TrialScene: ptr.TrialScene,
	})
	if err != nil {
		return
	}
	return
}

// UpsertOffTrial 新建/更新优惠试算
func (s *OffTrialEntityServiceImp) UpsertOffTrial(ctx context.Context, q *sqlc.Queries, ptr *sqlc.UpsertOffTrialParams) (offTrialPtr *sqlc.OffTrial, err error) {
	// slog := util.NewContextLogger(ctx, s.slog)
	offTrial, err := q.UpsertOffTrial(ctx, *ptr)
	if err != nil {
		return
	}
	offTrialPtr = &offTrial
	return
}
